#ifndef CATEGORIEITEM_H
#define CATEGORIEITEM_H

#include <QObject>
#include <QSqlQuery>
#include <QVariant>
#include <QList>

class CategorieItem : public QObject
{

    Q_OBJECT

public:
    explicit CategorieItem(CategorieItem *parent);
    ~CategorieItem();

    void construireArbre(QSqlDatabase db, int identifiant); //Renvoie la racine de l'arbre

    int numRow();
    int getId();
    int row();
    QVariant data() const;
    CategorieItem *getParent();
    CategorieItem *enfant(int row);

    CategorieItem *lastChildren();
    bool setData(const QVariant &value);
    void insertEnfant(int position, int identifiant);
    void insertEnfant(int position, CategorieItem * e);
    void swap(int prev, int next);

    CategorieItem *retirerDernier();

private:
    int id;
    QString nom;
    int ordre;
    CategorieItem *parentIt;
    QList<CategorieItem*> enfants;


};

#endif // CATEGORIEITEM_H
